JWT token过期自动续期解决方案

您所在的位置:网站首页 tp6 jwt JWT token过期自动续期解决方案

JWT token过期自动续期解决方案

2023-04-13 03:30| 来源: 网络整理| 查看: 265

access_token: 用于一般的资源请求的token

refresh_token: access_token过期后用于刷续期的token,注意设置refresh_token的过期时间需比access_token的过期时间长。

问题场景与解决办法问题1:

实现自动登录 JWT Token设置有效期,一旦失效用户就要重新登录,这样的体验非常差,需要做到用户在无感知的情况下,解决如何刷新Token的问题

解决方案:

用户登录时调用后端认证接口,后端验证用户成功之后生成两个token,access_token和refresh_token ,后端将用户信息和这两个token打包成JWT后并返回给前端。前端在获取到登录成功返回的两个token之后,将之存放到localStorage本地存储中。

问题2:

JWT用户如何无感知刷新token?

解决方案:

JWT token过期自动续期解决方案(去Redis)1)前端调用认证服务器登录, 正确后从认证服务器获取token(访问令牌access_token,刷新令牌refresh_token,过期时间(秒)exp_in,其中access_token为5分钟,refresh_token为30分钟,过期时间为300秒;2)前端将其保存3)每次Http请求带着access_token来访问资源服务端,资源服务器将按如下步骤令牌。4)先校验JWT是否合法(只是过期,不影响校验通过) 或 用户ID是否存在, 不满足任一条件,返回401,让用户重新登录。5)验证令牌是否过期,没过期就结束令牌校验,继续本次请求的业务逻辑(此时,JWT合法性校验通过,)。6)令牌已过期, 如果令牌过期时间超过了过期时间的两倍,返回401,让用户重新登录。 如果令牌过期时间小于过期时间的两倍,并在http响应头添加特列标识 token_expired=access_token ,服务器同时返回后继的业务结果,前端接收到后,应该在后续的再到认证服务器获取新的token)



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3